package Arrays类;

import java.util.Arrays;

public class 常用的方法 {
    public static void main(String[] args) {
        //1.toString:将数组变成字符串
        int[] arr={1,2,3,4,5,6,7,8,9,10};
        System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 7, 8, 9，10]

        //2.binarySearch:二分法查找元素
        //细节：数组中的元素必须是有序的，升序的
        //      如果要查收找的元素是不存在的，1.返回值的值是-插入点 2.如果要查早的是0但是0 不存在返回值是-1
        System.out.println(Arrays.binarySearch(arr,3));//2
        System.out.println(Arrays.binarySearch(arr,7));//6
        System.out.println(Arrays.binarySearch(arr,0));//-10


        //3.copyOf:拷贝数组
        //参数1：老数组
        //参数2：新数组的长度
        //如果新数组长度的大于老数组长度,会补上默认初始化值.
        System.out.println();
        int[] newArr1=Arrays.copyOf(arr,2);
        System.out.println(Arrays.toString(newArr1));//[1, 2]
        System.out.println(Arrays.toString(Arrays.copyOf(arr,11)));//[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0]

        //copyRange:拷贝数组指定范围
        //细节包头不保尾
        int[] newArr2=Arrays.copyOfRange(arr,0,9);
        System.out.println(Arrays.toString(newArr2));//[1, 2, 3, 4, 5, 6, 7, 8, 9]

        //fill:填充数组
        Arrays.fill(arr,100);
        System.out.println(Arrays.toString(arr));//[100, 100, 100, 100, 100, 100, 100, 100, 100, 100]

        //sort:排序,默认情况下,给基本数据类型进行升序排序,底层使用快速排序
        int[] arr2={10,2,3,5,4,7,9,6,1};
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));//[1, 2, 3, 4, 5, 6, 7, 9, 10]

    }
}
